/** 
 * 
 * json转字符串 
 */
function JsonTostring(data) {
	return JSON.stringify(data);
}
/** 
 * 
 * 字符串转json
 */
function stringToJson(data) {
	return JSON.parse(data);
}

/** 
 * 
 * 字符串转两位小数
 */
function toFixed2(number) {
	return parseFloat(number).toFixed(2)
}

/** 
 * 
 * 字符串转两位小数 相加
 */
function jia(number1, number2) {
	return (parseFloat(number1) + parseFloat(number2)).toFixed(2)
}
/** 
 * 
 * 字符串转两位小数 相加
 */
function jian(number1, number2) {
	return (parseFloat(number1) - parseFloat(number2)).toFixed(2)
}
/** 
 * 
 * 字符串转两位小数 相乘
 */
function cheng(number1, number2) {
	return (parseFloat(number1) * parseFloat(number2)).toFixed(2)
}

/** 
 * 
 * 复制内容
 */
function copyText(text) {
	wx.setClipboardData({
		data: text,
		success: function(res) {
			wx.getClipboardData({
				success: function(res) {
					wx.showToast({
						title: '复制成功'
					})
				}
			})
		}
	})
}
/** 
 * 
 * 图片浏览
 */
function showImg(imgs, img) {
	uni.previewImage({
		current: img,
		urls: imgs
	})
}


/** 
 * 
 * 验证表情
 */
function filterEmoji(name) {

	var str = name.replace(
		/[\uD83C|\uD83D|\uD83E][\uDC00-\uDFFF][\u200D|\uFE0F]|[\uD83C|\uD83D|\uD83E][\uDC00-\uDFFF]|[0-9|*|#]\uFE0F\u20E3|[0-9|#]\u20E3|[\u203C-\u3299]\uFE0F\u200D|[\u203C-\u3299]\uFE0F|[\u2122-\u2B55]|\u303D|[\A9|\AE]\u3030|\uA9|\uAE|\u3030/ig,
		"");

	return str;

}

/** 
 * 
 * 替换空格键2
 */
function filterSpace(name) {
	var str = name.replace(/\s+/g, '');
	return str;

}
/** 
 * 
 * 拨号
 */
function dialing(tel) {
	if (!tel) {
		uni.showToast({title: '暂无联系电话',icon: 'error'})
		return
	}
	uni.makePhoneCall({
		phoneNumber: tel.toString()
	});
}
/** 
 * 
 * 验证表情和空格
 */
function filterText(name) {
	var str = name.replace(/\s+/g, '');
	str = str.replace(
		/[\uD83C|\uD83D|\uD83E][\uDC00-\uDFFF][\u200D|\uFE0F]|[\uD83C|\uD83D|\uD83E][\uDC00-\uDFFF]|[0-9|*|#]\uFE0F\u20E3|[0-9|#]\u20E3|[\u203C-\u3299]\uFE0F\u200D|[\u203C-\u3299]\uFE0F|[\u2122-\u2B55]|\u303D|[\A9|\AE]\u3030|\uA9|\uAE|\u3030/ig,
		"");
	return str;

}
/**
 * 
 *  邮箱 
 */
function checkEmail(email) {
	return RegExp(/^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/).test(
		email);
}
/** 
 * 
 * 请求上个页面的isonshow方法
 */
function isonshow(tier) {
	var pages = getCurrentPages()
	var prevPage = pages[pages.length - tier] //上一个页面
	if (prevPage?.$vm?.isonshow) prevPage?.$vm?.isonshow?.()
}
/** 
 * 
 * 设置上一个页面的内容
 */
function setdata(tier, data) {
	var pages = getCurrentPages()
	var prevPage = pages[pages.length - tier] //上一个页面
	prevPage.setData(data)
}

let timer = 0
function goToLogin() {
	clearTimeout(timer)
	timer = setTimeout(() => {
		uni.navigateTo({
			url: '/home/login/login',
		})
	},1000)
}

/**
 * 身份证号码验证
 */
function checkIDCard(idcode) {
	// 加权因子
	var weight_factor = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]
	// 校验码
	var check_code = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2']

	var code = idcode + ""
	var last = idcode[17] //最后一个

	var seventeen = code.substring(0, 17)

	// ISO 7064:1983.MOD 11-2
	// 判断最后一位校验码是否正确
	var arr = seventeen.split("")
	var len = arr.length
	var num = 0
	for (var i = 0; i < len; i++) {
		num = num + arr[i] * weight_factor[i]
	}

	// 获取余数
	var resisue = num % 11
	var last_no = check_code[resisue]

	// 格式的正则
	var idcard_patter =
		/^[1-9][0-9]{5}([1][9][0-9]{2}|[2][0][0|1][0-9])([0][1-9]|[1][0|1|2])([0][1-9]|[1|2][0-9]|[3][0|1])[0-9]{3}([0-9]|[X])$/

	// 判断格式是否正确
	var format = idcard_patter.test(idcode)

	// 返回验证结果，校验码和格式同时正确才算是合法的身份证号码
	return last === last_no && format ? true : false
}

// 验证
function verify(data) {
	let phonezz = /^1[3|4|5|6|7|8|9]{1}[0-9]{9}$/;
	let RegExp = /^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/

	// {value值,type验证类型,title提示语} 验证类型1空 2大于0 3手机号 4身份证 5至少6位数 6两个数据不相等 7第一个数不能大于第二个数 8第一个数不能小于第二个数
	return !data.some(function(item) {
		if (item.type == 1 && typeof(item.value) == "undefined") {
			wx.showToast({
				title: item.title ? item.title : "请输入",
				icon: "none"
			})
			return item.type == 1 && typeof(item.value) == "undefined"
		} else if (item.type == 1 && item.value.length < 1) {
			wx.showToast({
				title: item.title,
				icon: "none"
			})
			return item.type == 1 && item.value.length < 1
		} else if (item.type == 2 && parseInt(item.value) < 1) {
			wx.showToast({
				title: item.title,
				icon: "none"
			})
			return item.type == 2 && parseInt(item.value) < 1
		} else if (item.type == 3 && !phonezz.test(parseInt(item.value))) {
			wx.showToast({
				title: item.title ? item.title : "手机号码格式错误",
				icon: "none"
			})
			return item.type == 3 && !phonezz.test(parseInt(item.value))
		} else if (item.type == 4 && !checkIDCard(item.value)) {
			wx.showToast({
				title: item.title ? item.title : "身份证号码有误",
				icon: "none"
			})
			return item.type == 4 && !checkIDCard(item.value)
		} else if (item.type == 5 && item.value.length < 5) {
			wx.showToast({
				title: item.title,
				icon: "none"
			})
			return item.type == 5 && item.value.length < 5
		} else if (item.type == 6 && (item.value[0] != item.value[1])) {
			wx.showToast({
				title: item.title,
				icon: "none"
			})
			return item.type == 6 && (item.value[0] != item.value[1])
		} else if (item.type == 7 && (parseInt(item.value[0]) > parseInt(item.value[1]))) {
			wx.showToast({
				title: item.title,
				icon: "none"
			})
			return item.type == 7 && (parseInt(item.value[0]) > parseInt(item.value[1]))
		} else if (item.type == 8 && (parseInt(item.value[0]) < parseInt(item.value[1]))) {
			wx.showToast({
				title: item.title,
				icon: "none"
			})
			return item.type == 8 && (parseInt(item.value[0]) < parseInt(item.value[1]))
		} else if (item.type == 9 && !RegExp.test(item.value)) {
			console.log(!RegExp.test(item.value))
			wx.showToast({
				title: item.title ? item.title : "请填写正确的邮箱",
				icon: "none"
			})
			return item.type == 9 && !RegExp.test(item.value)
		}
	});

}
// 图片上传
function uploadimg(number, url, fn) {
	uni.chooseImage({
		count: number,
		success: (chooseImageRes) => {
			const tempFilePaths = chooseImageRes.tempFilePaths;
			// 前端使用的字符
			let web = []
			// 后台使用的字符
			let back = []
			let stop = 0
			tempFilePaths.forEach(item => {
				uni.showLoading({
					title: "正在上传"
				});
				uni.uploadFile({
					url: url, //仅为示例，非真实的接口地址
					filePath: item,
					name: 'file',
					formData: {
						'user': 'test'
					},
					success: (res) => {
						let data = JSON.parse(res.data).data
						web.push(data.fullurl)
						back.push(data.url)
						console.log(web,back,'plug')
					},
					complete() {
						uni.hideLoading();
						stop++
						if (stop == tempFilePaths.length) {
							return fn && typeof fn === 'function' && fn({
								web,
								back
							})
						}
					}
				});
			})
		}
	});
}
// 图片视频
function uploadvideo(url, fn) {
	uni.chooseVideo({
		count: 1,
		sourceType: ['camera', 'album'],
		success: (res) => {
			const tempFilePath = res.tempFilePath;
			let stop = 0
			console.log(tempFilePath)
			uni.showLoading({
				title: "正在上传",
				mask: true

			});
			uni.uploadFile({
				url: url, //仅为示例，非真实的接口地址
				filePath: tempFilePath,
				name: 'file',
				formData: {
					'user': 'test'
				},
				success: (res) => {
					uni.hideLoading();
					let data = JSON.parse(res.data).data
					return fn && typeof fn === 'function' && fn(data)
				}
			});
		}
	});
}
export default {
	stringToJson,
	JsonTostring,
	toFixed2,
	jia,
	jian,
	cheng,
	copyText,
	showImg,
	filterEmoji,
	filterSpace,
	filterText,
	isonshow,
	setdata,
	checkIDCard,
	verify,
	uploadimg,
	uploadvideo,
	dialing,
	checkEmail,
	goToLogin
}
